SQL 语句执行

概述

在数据库操作中,SQL(Structured Query Language)是用于管理和操作关系型数据库的标准语言。SQL 语句可以用于创建、查询、更新和删除数据库中的数据。本教程将详细介绍如何在 Java 中执行 SQL 语句,包括连接数据库、执行查询、插入、更新和删除操作。

数据库连接

在执行 SQL 语句之前,首先需要连接到数据库。Java 提供了 java.sql 包来支持数据库操作。常用的数据库连接方式是通过 JDBC(Java Database Connectivity)。

1. 导入必要的包

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

2. 加载数据库驱动

不同的数据库需要不同的驱动程序。例如,MySQL 数据库需要加载 com.mysql.cj.jdbc.Driver 驱动。

Class.forName("com.mysql.cj.jdbc.Driver");

3. 建立数据库连接

使用 DriverManager.getConnection() 方法来建立与数据库的连接。需要提供数据库的 URL、用户名和密码。

String url = "jdbc:mysql://localhost:3306/mydatabase";
String username = "root";
String password = "mypassword";

Connection connection = DriverManager.getConnection(url, username, password);

执行 SQL 查询

1. 创建 Statement 对象

Statement 对象用于执行静态 SQL 语句。

Statement statement = connection.createStatement();

2. 执行查询

使用 executeQuery() 方法执行 SELECT 查询,并返回 ResultSet 对象。

String sql = "SELECT * FROM employees";
ResultSet resultSet = statement.executeQuery(sql);

3. 处理结果集

遍历 ResultSet 对象,获取查询结果。

while (resultSet.next()) {
    int id = resultSet.getInt("id");
    String name = resultSet.getString("name");
    System.out.println("ID: " + id + ", Name: " + name);
}

执行插入、更新和删除操作

1. 执行插入操作

使用 executeUpdate() 方法执行 INSERT 语句。

String insertSql = "INSERT INTO employees (name, age) VALUES ('John Doe', 30)";
int rowsAffected = statement.executeUpdate(insertSql);
System.out.println(rowsAffected + " row(s) inserted.");

2. 执行更新操作

使用 executeUpdate() 方法执行 UPDATE 语句。

String updateSql = "UPDATE employees SET age = 31 WHERE name = 'John Doe'";
rowsAffected = statement.executeUpdate(updateSql);
System.out.println(rowsAffected + " row(s) updated.");

3. 执行删除操作

使用 executeUpdate() 方法执行 DELETE 语句。

String deleteSql = "DELETE FROM employees WHERE name = 'John Doe'";
rowsAffected = statement.executeUpdate(deleteSql);
System.out.println(rowsAffected + " row(s) deleted.");

使用预处理语句

预处理语句(PreparedStatement)可以防止 SQL 注入攻击,并且可以提高执行效率。

1. 创建预处理语句

String sql = "INSERT INTO employees (name, age) VALUES (?, ?)";
PreparedStatement preparedStatement = connection.prepareStatement(sql);

2. 设置参数

使用 setXXX() 方法设置参数值。

preparedStatement.setString(1, "Jane Doe");
preparedStatement.setInt(2, 28);

3. 执行预处理语句

rowsAffected = preparedStatement.executeUpdate();
System.out.println(rowsAffected + " row(s) inserted.");

实践练习

练习 1: 查询员工信息

编写一个 Java 程序,连接到数据库并查询所有员工的姓名和年龄,并打印出来。

练习 2: 插入新员工

编写一个 Java 程序,插入一条新的员工记录,并打印插入的行数。

练习 3: 更新员工信息

编写一个 Java 程序,更新某个员工的年龄,并打印更新的行数。

练习 4: 删除员工信息

编写一个 Java 程序,删除某个员工的信息,并打印删除的行数。

总结

本教程介绍了如何在 Java 中执行 SQL 语句,包括连接数据库、执行查询、插入、更新和删除操作。通过使用 JDBC,可以方便地与各种关系型数据库进行交互。预处理语句的使用可以提高安全性并优化性能。通过实践练习,可以更好地掌握这些技能。